package Stragos.servlet;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.catalina.filters.AddDefaultCharsetFilter;

import Stragos.excepcion.DAOExcepcion;
import Stragos.modelo.Producto;
import Stragos.modelo.Tipoproducto;
import Stragos.negocio.GestionProductos;

/**
 * Servlet implementation class CrearProd
 */
@WebServlet("/CrearProd")
public class CrearProd extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public CrearProd() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		
		try{
			
			GestionProductos prod = new GestionProductos();
			
			String nom  = request.getParameter("nombre");
			double pre  = Double.parseDouble(request.getParameter("precio"));			
			int    disp = Integer.parseInt(request.getParameter("disp"));
			int    tipo = Integer.parseInt(request.getParameter("tipoprod"));
			//int    cant = Integer.parseInt(request.getParameter("slider-cant"));
			
			Producto p1 = new Producto(); 
			p1.setNombre(nom);
			p1.setPrecio(pre);
			p1.setElog(true);//Por el momento va en default
			if(disp == 1){
			p1.setDisponible(true);
			}else{
			p1.setDisponible(false);
			}	
			try{
			Tipoproducto ti1 = prod.obtenerTipoProd(tipo);
			if(ti1 == null){
				request.setAttribute("mensaje", "Error no se encontro Tipo de prod");
			}else{
				p1.setTipo(ti1);
				prod.insertar(p1);
				request.setAttribute("mensaje", "Se agrego producto correctamente");
				RequestDispatcher rd = request.getRequestDispatcher("CrearProd.jsp");
				rd.forward(request, response);
			}			
			} catch (DAOExcepcion e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				request.setAttribute("mensaje", "No se pudo crear Producto ::: Verifique sus datos");
				RequestDispatcher rd = request.getRequestDispatcher("CrearProd.jsp");
				rd.forward(request, response);
			}
		
		} catch (IllegalArgumentException e2) {
			// TODO Auto-generated catch block
			e2.printStackTrace();
			request.setAttribute("mensaje", "ERROR, Falta llenar campos o tipo de variable no soportada: -" + e2.getMessage() + "-");
	
		}
	}
}

